import numpy as np
from struc import server_list,vm_list
from dealstr import strsplit
def read_data(URL):
    # read_data读取训练信息，包含以下部分
    # (1) 服务器型号
    # N - 服务器型号总数
    # SERVERS_LIST - 服务器型号，以字典存储
    # (2) 虚拟机型号
    # M - 虚拟机型号总数
    # VMS_LIST - 虚拟机型号，以字典存储
    # (3) 请求指令
    # T - 总天数
    # R - 每日总请求数，以list存储
    # ORDERS - 每日请求指令，以list存储
    f = open("dataset/training-1.txt", 'r')
    count=0
    R=[]
    SERVER_LIST={}
    VMS_LIST={}
    ORDERS=[]
    order=[]
    while 1:
        line=f.readline()
        if line=='': #退出前，应该将最后一天的请求指令信息放入ORDERS
            ORDERS.append(order)
            break
        line=line[:-1]
        if '0'<=line[0]<='9': #如果读取的是数字行
            if count==0:
                N=int(line)
            elif count==1:
                M=int(line)
            elif count==2:
                T=int(line)
            else:
                if count!=3: #如果不是刚开始读取第一天的信息
                    ORDERS.append(order)
                order = []
                R.append(int(line))
            count+=1
        else: #如果读取的是信息行
            if count==1:
                params=strsplit(line)  #字符串切片
                SERVER_LIST[params[0]]=server_list(params=params) #服务器型号参数存储初始化
            elif count==2:
                params=strsplit(line)  #字符串切片
                VMS_LIST[params[0]]=vm_list(params=params) #服务器型号参数存储初始化
            else:
                order.append(strsplit(line))

    f.close()
    return N,SERVER_LIST,M,VMS_LIST,T,R,ORDERS